package com.galaxy.payment.domain.convert;

import com.galaxy.payment.domain.PaymentRecord;
import com.galaxy.payment.domain.bo.PaymentBo;
import com.galaxy.payment.domain.vo.PaymentRecordVo;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 支付记录对象转换器
 */
@Mapper
public interface PaymentRecordConvert {

    PaymentRecordConvert INSTANCE = Mappers.getMapper(PaymentRecordConvert.class);

    /**
     * 实体转BO
     */
    PaymentBo entityToBo(PaymentRecord entity);

    /**
     * 实体列表转BO列表
     */
    List<PaymentBo> entityToBoList(List<PaymentRecord> list);

    /**
     * 实体转VO
     */
    PaymentRecordVo entityToVo(PaymentRecord entity);

    /**
     * 实体列表转VO列表
     */
    List<PaymentRecordVo> entityToVoList(List<PaymentRecord> list);

    /**
     * BO转实体
     */
    PaymentRecord boToEntity(PaymentBo bo);

    /**
     * BO列表转实体列表
     */
    List<PaymentRecord> boToEntityList(List<PaymentBo> list);

    /**
     * VO转BO
     */
    PaymentBo voToBo(PaymentRecordVo vo);
} 